import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

//解决当前路由点击到当前路由报错问题
const originalPush=VueRouter.prototype.push
VueRouter.prototype.push=function push(location){
  return originalPush.call(this,location).catch(err=>err)
}

Vue.use(VueRouter)

// 静态路由，之后会和库里读出来的菜单数据合并，静态路由的id为负数，为防止与库中id重复
const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    meta:{
      id:-1,
      pid:0,
      title:"首页",
      showInMenu:true,
      sort:1
    }
  },
  {
    path:"/charts1",
    name:"charts1test",
    component:()=>import("../test/charts1.vue"),
    meta:{
      showInMenu:true,
      id:-3,
      pid:0,
      title:"图表",
      sort:2
    }
  },
  {
    path:"/charts2",
    name:"charts2test",
    component:()=>import("../test/charts2.vue"),
    meta:{
      showInMenu:true,
      id:-33,
      pid:0,
      title:"图表2",
      sort:23
    }
  },
  {
    path:"/charts3",
    name:"charts3test",
    component:()=>import("../test/charts3.vue"),
    meta:{
      showInMenu:true,
      id:-34,
      pid:0,
      title:"图表3",
      sort:23
    }
  },
  {
    path:"/treetable",
    name:"treetable",
    component:()=>import("../test/treetable.vue"),
    meta:{
      showInMenu:true,
      id:-111,
      pid:0,
      title:"树表格",
      sort:111
    }
  },
  {
    path:"/redirect",
    name:"redirect",
    component:()=>import("../pages/redirect.vue"),
    meta:{
      showInMenu:false,
      type:"redirect"
    }
  },
  {
    path:'/demo/',
    name:'Demo',
    component:()=>import('../demos/demo.vue'),
    meta:{
      id:-2,
      pid:0,
      title:"示例",
      showInMenu:true,
      sort:2
    }
  },{
    path:'/demo/:id',
    name:"demoshow",
    component:()=>import('../demos/demoshow.vue'),
    meta:{
      id:-4,
      pid:2,
      title:'示例展示',
      showInMenu:false
    }
  },
  {
    path:'/pages',
    name:'pages',
    component:()=>import("../pages/pageList.vue"),
    meta:{
      id:-5,
      pid:0,
      title:"页面管理",
      showInMenu:true,
      sort:3
    },
    children:[
      
    ]
  },
  {
    path:'/pages/add',
    name:"pageAdd",
    component:()=>import("../pages/pageAdd.vue"),
    meta:{
      id:-6,
      pid:0,
      title:"页面添加",
      showInMenu:false
    }
  },
  {
    path:'/pages/config/:id',
    name:"pageConfig",
    component:()=>import("../pages/config.vue"),
    meta:{
      id:-7,
      pid:0,
      title:"列表页配置",
      showInMenu:false
    }
  },
  {
    path:'/pages/formconfig/:id',
    name:"formpageConfig",
    component:()=>import("../pages/formconfig.vue"),
    meta:{
      id:-71,
      pid:0,
      title:"表单页配置",
      showInMenu:false
    }
  },
  {
    path:'/pages/grid',
    name:"grid",
    component:()=>import("../pages/grid.vue"),
    meta:{
      id:-81,
      pid:0,
      title:"grid",
      showInMenu:true
    }
  },
  // {
  //   path:'/complist',
  //   name:'complist',
  //   component:()=>import("../pages/list.vue"),
  //   meta:{
  //     id:-8,
  //     pid:0,
  //     type:'list',
  //     title:"组件管理",
  //     showInMenu:true,
  //     isDynamic:true,
  //     dynamicPageId:1,
  //     p:""
  //   },
  //   children:[
  //     {
  //       path:'add',
  //       name:'compadd',
  //       component:()=>import('../pages/form.vue'),
  //       meta:{
  //         id:-10,
  //         pid:8,
  //         title:'组件添加',
  //         showInMenu:false,
  //         isDynamic:true,
  //         dynamicPageId:1005,
  //         parent:"/complist"
  //       }
  //     },
  //     {
  //       path:'edit/:id',
  //       name:'compedit',
  //       component:()=>import('../pages/form.vue'),
  //       meta:{
  //         id:-11,
  //         pid:8,
  //         title:'组件编辑',
  //         showInMenu:false,
  //         isDynamic:true,
  //         dynamicPageId:2
  //       }
  //     }
  //   ]
  // },
  // {
  //   path:'/menu',
  //   name:"menu",
  //   component:()=>import("../pages/list.vue"),
  //   meta:{
  //     id:12,
  //     pid:0,
  //     type:'list',
  //     title:"菜单管理",
  //     showInMenu:true,
  //     isDynamic:true,
  //     dynamicPageId:1006      
  //   },
  //   children:[
  //     {
  //       path:"/menu/add",
  //       name:"menu_add",
  //       component:()=>import("../pages/form.vue"),
  //       meta:{
  //         id:13,
  //         pid:12,
  //         type:"form",
  //         title:"菜单添加",
  //         showInMenu:false,
  //         isDynamic:true,
  //         dynamicPageId:1007
  //       }
  //     }
  //   ]
  // },
  {
    path:'/test',
    name:'test',
    component:()=>import("../test/father.vue"),
    meta:{
      id:-9,
      pid:0,
      title:'测试',
      showInMenu:true,
      sort:5
    }
  }
]

const router = new VueRouter({
  routes
})

export default router
